﻿using System;
using System.Collections;
using System.Collections.Generic;

namespace Neturion.Dados
{
    /// <summary>
    /// 
    /// </summary>
    public class Sistema
    {
        private int _sistemaId;
        private string _codigo;
        private string _descricao;
        private IList _listaTela; 
        private IList _listaSistemaPerfil;
        private string _email;
        private string _senha;
        private string _porta;
        private string _protocoloEnvio;
        private string _protocoloRecebimento;
        private Empresa _empresa;

        public Sistema()
        {
            _listaTela = new List<Tela>();
            _listaSistemaPerfil = new List<SistemaPerfil>();
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual int SistemaId
        {
            get { return _sistemaId; }
            set { _sistemaId = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual string Codigo
        {
            get { return _codigo; }
            set { _codigo = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual string Descricao
        {
            get { return _descricao; }
            set { _descricao = value; }
        }
        
        /// <summary>
        /// 
        /// </summary>
        public virtual IList ListaTela
        {
            get { return _listaTela; }
            set { _listaTela = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual IList ListaSistemaPerfil
        {
            get { return _listaSistemaPerfil; }
            set { _listaSistemaPerfil = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual string Email
        {
            get { return _email; }
            set { _email = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual string Senha
        {
            get { return _senha; }
            set { _senha = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual string Porta
        {
            get { return _porta; }
            set { _porta = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual string ProtocoloEnvio
        {
            get { return _protocoloEnvio; }
            set { _protocoloEnvio = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual string ProtocoloRecebimento
        {
            get { return _protocoloRecebimento; }
            set { _protocoloRecebimento = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual Empresa Empresa
        {
            get { return _empresa; }
            set { _empresa = value; }
        }

        public virtual void AdicionarTela(Tela tela)
        {
            ListaTela.Add(tela);
        }

        public virtual void RemoverTela(Tela tela)
        {
            ListaTela.Remove(tela);
        }

        public virtual void AdicionarSistemaPerfil(SistemaPerfil sistemaPerfil)
        {
            sistemaPerfil.Sistema = this;
            ListaSistemaPerfil.Add(sistemaPerfil);
        }

        public virtual void RemoverSistemaPerfil(SistemaPerfil sistemaPerfil)
        {
            ListaSistemaPerfil.Remove(sistemaPerfil);
        }
    }
}